<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        console.dir(Object);
        let obj1={
            name:'你好'
        }
        let obj2={
            color:'我好'
        }
        let obj3={
            sex:'女'
        }
        // object.assign 将obj2 obj3。。。对象上的属性 都添加到obj1中  
        Object.assign(obj1,obj2,obj3);
        console.log(obj1);

        // object.create 创建了一个新对象 将现有的对象作为这个新对象的原型对象
        let obj4=Object.create(obj1);
        obj4.name='闫胜男';
        console.log(obj4);

        // Object.entries 将现有的对象上的属性名和属性值 键值对 变为数组
        console.log(Object.entries(obj1));

        // Object.freeze() 可以冻结一个对象，冻结该对象后，不能对该对象进行增删改
        let obj_freeze=Object.freeze(obj1);
        console.log(obj_freeze);
        obj_freeze.sex='男';
        console.log(obj_freeze);
        // Object.isFrozen 查看这个对象是否冻结，冻结true 不冻结 false
        console.log(Object.isFrozen(obj_freeze));
        console.log(Object.isFrozen(obj2));

        // 
        let arr=[['name','tom'],['age',20]];
        let obj_arr=Object.fromEntries(arr);
        console.log(obj_arr);

        // 
        let test_entries=Object.entries(obj1);
        console.log(test_entries);

        // Object.fromEntrie 将键值对的这种数组，转变为一个对象
        let test_fromEntrie=Object.fromEntries(test_entries);
        console.log(test_entries);

        // Object.is 判断两个值是否相同
        let obj_is1={
            name:'ysn1'
        }
        let obj_is2={
            name:'ysn2'
        }
        console.log(Object.is(obj_is1,obj_is2));
        console.log(Object.is(1,1));

        // Object.values 形成一个数组，数组的内容是该对象中可以枚举的属性值
        let arr_value=Object.values(obj1);
        console.log(arr_value);
        Object.prototype.hobby='玩游戏';
        console.log(obj1);

        // obj1.hasOwnProperty 查看该属性是否是对象自身的属性，是返回true 不是返回false
        console.log(obj1.hasOwnProperty('name'));

        // for in 可以遍历对象自身上的属性和方，也可以遍历原型链上属性和方法
        for(let key in obj1){
            console.log(key);
        }

        let arr_new=[1,2,3];
        for(let index in arr_new){
            console.log(index);
        }

        // for(let key of obj1){
        //     console.log(key);
        // }
    </script>
</body>
</html>